import { getToken, setToken, removeToken } from '@/utils/auth'
import { login, getUserInfo } from '@/api/user'
export default {

  namespaced: true,
  state: {
    token: getToken(),
    userInfo: {}
  },
  mutations: {
    updataUserInfo(state, newUserInfo) {
      // 储存数据
      state.userInfo = newUserInfo
    },
    // 修改token的值
    // 存储token
    updataToken(state, newToken) {
      state.token = newToken
      setToken(newToken)
    },
    delToken(state) {
      // 清除vuex仓库中的token
      state.token = ''
      // 删除cookie的token
      removeToken()
    }
  },
  actions: {
    async updataUserInfoSync(context) {
      // 1.获取用户信息，发送请求
      const res = await getUserInfo()
      console.log(res)
      // 2.调用mutations方法-储存数据
      context.commit('updataUserInfo', res)
    },
    // 1.调用登录接口请求

    // 2.接口返回token
    // 3.调用mutations的方法
    async  updataTokenSync(context, data) {
      const token = await login(data)
      context.commit('updataToken', token)
    },
    logout(context) {
      context.commit('delToken')
      context.commit('updataUserInfo', {})
    }
  }

}
